﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace QldtSdh.GUI.DaoTao
{
    using BLL;
    using DAL;
    using DAL.Models;
    using GUI.Utils;
    using QldtSdh.GUI.Common;
    using QldtSdh.Utils;

    public partial class FormLopHocPhan_ThoiKhoaBieu_ThongKe : QldtSdh.GUI.Common.BaseDialog
    {
        public FormLopHocPhan_ThoiKhoaBieu_ThongKe(LopHocPhan lopHocPhan)
        {
            InitializeComponent();

            using (var db = CEMS4UG_DHKHContext.GetContext())
            {
                var sb = new StringBuilder();
                sb.AppendFormat("- Lớp học phần: {0}\r\n", lopHocPhan.TenLopHocPhanFull);
                var hocPhan = BizHocPhan.GetByID(lopHocPhan.MaHocPhanGUID, db);
                sb.AppendFormat("- Số tín chỉ: {0}\r\n", hocPhan.SoTinChi);
                var soBuoiDaPhan = BizThoiKhoaBieu.GetSoBuoiDaPhan(lopHocPhan.MaLopHocPhanGUID, db);
                if (soBuoiDaPhan > 0)
                {
                    sb.AppendFormat("- Tổng số buổi đã phân: {0} (tương đương {1} giờ)\r\n", soBuoiDaPhan, soBuoiDaPhan * 3);
                    var ngayMin = BizThoiKhoaBieu.GetNgayHocDauTien(lopHocPhan, db);
                    var ngayMax = BizThoiKhoaBieu.GetNgayHocCuoiCung(lopHocPhan, db);
                    sb.AppendFormat("- Khoảng thời gian đã phân: {0} ÷ {1}\r\n", ngayMin.ToString("dd/MM/yyyy"), ngayMax.ToString("dd/MM/yyyy"));
                }
                var lst = BizPhanCongGiangDay.GetListGiangVienGiangDay(lopHocPhan.MaLopHocPhanGUID, db);
                if (lst.Count == 0)
                    sb.AppendFormat("- Chưa phân công giảng dạy cho lớp học phần\r\n");
                else
                {
                    foreach (var gv in lst)
                    {
                        var soBuoi = BizThoiKhoaBieu.GetSoBuoiDaPhan(lopHocPhan.MaLopHocPhanGUID, gv.MaGiangVien, db);
                        sb.AppendFormat("    + Giảng viên {0}\r\n", gv._GiangVienDesc);
                        sb.AppendFormat("        * Số giờ PCGD: {0} giờ\r\n", gv.TongSoGio);
                        sb.AppendFormat("        * Đã phân: {0} buổi\r\n", soBuoi);
                    }
                }

                txtInfo.Text = sb.ToString();
                txtInfo.Select(0, 0);
                //                var st = string.Format(@"
                //- Lớp học phần: {0}.
                //- Khoảng thời gian đã phân: {1} ÷ {2}.
                //- Số buổi đã phân: {3} (tương đương {4} giờ).
                //- Phân công giảng dạy:
                //    + Giảng viên {5}: {6} buổi (tương đương {7} giờ.");
            }
        }
    }
}
